<html>
<head><meta charset="utf-8"><title>borrow-check issue #4 · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html">borrow-check issue #4</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="126333018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333018">(May 09 2018 at 20:28)</a>:</h4>
<p>Was there a discussion about how to integrate two-phase borrows into the alias analysis? It's not entirely obvious to me how we should generate <code>invalidate</code> statements without livenss information for them. Right now, that's computed as part of the overall borrow liveness computation, and depends on our existing region inference if I'm remembering that code correctly... which is exactly what the new analysis rips out <span class="emoji emoji-1f605" title="sweat smile">:sweat_smile:</span></p>



<a name="126333129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333129">(May 09 2018 at 20:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>  ^</p>



<a name="126333178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333178">(May 09 2018 at 20:31)</a>:</h4>
<p>the invalidation information should be independent I think</p>



<a name="126333185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333185">(May 09 2018 at 20:31)</a>:</h4>
<p>just based on which paths overlap</p>



<a name="126333191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333191">(May 09 2018 at 20:31)</a>:</h4>
<p>not based on the <em>location</em> at all</p>



<a name="126333199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126333199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126333199">(May 09 2018 at 20:31)</a>:</h4>
<p>but I gotta run, I'll be back in 15-30 mins</p>



<a name="126334830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126334830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126334830">(May 09 2018 at 21:02)</a>:</h4>
<p>I think it still matters? If we have something like</p>
<div class="codehilite"><pre><span></span>LOC0: _3 = &amp;&#39;3 mut _1 // this borrow is two phase
LOC1:  _4 = &amp;&#39;4 _1
// do something with _4
// ... _4 dies here
LOC2: call(move _3, ... ) // borrow activates here
</pre></div>


<p>Borrowing <code>_1</code> immutably using <code>_4</code> needs to still work; but if I'm blindly generating <code>invalidate</code> rules I /think/ we would incorrectly generate an error since we would generate at least 2 invalidates facts:<br>
  -  <code>i0: invalidates('4, LOC0)</code> because single-phase mutable borrows require all borrows of the same path (or any parent path) to be dead<br>
  - <code>i1: invalidates('3, LOC1)</code> because creating this borrow is going to invalidate a single-phase mutable borrow<br>
We also have a region <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi><mn>3</mn></mrow><annotation encoding="application/x-tex"> R3 </annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathrm">3</span></span></span></span> representing the liveness of '3, which has to be live at <code>LOC0</code>,  <code>LOC1</code>, and <code>LOC2</code>. Thus we would error at <code>LOC1</code> since '3 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>∈</mo><mi>R</mi><mn>3</mn></mrow><annotation encoding="application/x-tex"> \in R3 </annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="base"><span class="mrel">∈</span><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathrm">3</span></span></span></span> but '3 is invalidated by <code>i1</code>. <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi><mn>3</mn></mrow><annotation encoding="application/x-tex"> R3 </annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathrm">3</span></span></span></span>  has to contain every point between <code>LOC0</code> and <code>LOC2</code> since otherwise bad things might happen to <code>_1</code> when we aren't looking (e.g. overwriting it, which is illegal today since any write access to <code>_1</code> or its children would force the activation of '3). All this is assuming I know my borrow checker rules which might not be true <span class="emoji emoji-1f643" title="upside down face">:upside_down_face:</span>.</p>



<a name="126335213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335213">(May 09 2018 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> I see, yeah good point.</p>



<a name="126335258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335258">(May 09 2018 at 21:12)</a>:</h4>
<p>still, we know whether we are in the "active" region or not</p>



<a name="126335260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335260">(May 09 2018 at 21:12)</a>:</h4>
<p>based solely on the dominator information</p>



<a name="126335261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335261">(May 09 2018 at 21:12)</a>:</h4>
<p>so you could take that into account when considering what "invalidates" perhaps</p>



<a name="126335263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335263">(May 09 2018 at 21:12)</a>:</h4>
<p>/me thinks</p>



<a name="126335270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335270">(May 09 2018 at 21:12)</a>:</h4>
<p>I <em>think</em> that would be true -- the idea would be that the <code>&amp;mut a.b.c</code> would be in error in the first place</p>



<a name="126335282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126335282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126335282">(May 09 2018 at 21:13)</a>:</h4>
<p>i.e., the initial borrow still invalidates itself, but -- until activation -- only writes to <code>a.b.c</code> violate the loan</p>



<a name="126336159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126336159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126336159">(May 09 2018 at 21:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> btw however far you get post your branch if you run out of time. I'll be able to talk more about this tomorrow, I gotta run for tonight.</p>



<a name="126336179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126336179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126336179">(May 09 2018 at 21:37)</a>:</h4>
<p>Sounds good. Using the dominator information should work out I think? I'll definitely push a branch</p>



<a name="126345501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126345501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126345501">(May 10 2018 at 02:27)</a>:</h4>
<p>This is the branch that removes position information and thus (I believe) speeds up "NLL" while sacrificing precision: <a href="https://github.com/rust-lang/rust/pull/50593" target="_blank" title="https://github.com/rust-lang/rust/pull/50593">https://github.com/rust-lang/rust/pull/50593</a></p>



<a name="126358166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126358166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126358166">(May 10 2018 at 10:08)</a>:</h4>
<p>Here's what I was able to get done: <a href="https://github.com/bobtwinkles/rust/tree/nll_facts_invalidate" target="_blank" title="https://github.com/bobtwinkles/rust/tree/nll_facts_invalidate">https://github.com/bobtwinkles/rust/tree/nll_facts_invalidate</a><br>
It's not complete, probably doesn't compile, and definitely doesn't work but I'm way past out of time today and I'll be spending tomorrow traveling. I think I got most of the boring stuff out of the way for you <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, if you want to pick this up  and run with it <span class="emoji emoji-1f604" title="smile">:smile:</span> . You'll need to review <code>check_access_for_conflict</code> in <code>invalidation.rs</code> and add a call to <code>generate_invalidates</code> in <code>nll/mod.rs</code>. Reviewing everything else in there probably wouldn't be the worst idea. As a "nice to have thing", we can probably do better than just iterating over every single borrow every single time we need to check for conflicts. Something like a <code>FxHashMap&lt;Place, Vec&lt;BorrowIndex&gt;&gt;</code> mapping from the root place to a list of the borrows involving that place and its children would probably work well</p>



<a name="126358249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126358249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126358249">(May 10 2018 at 10:11)</a>:</h4>
<p>also the code duplication with the current borrow check hurts me a little, and there should be a way to reduce it</p>



<a name="126358323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126358323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126358323">(May 10 2018 at 10:13)</a>:</h4>
<p>it might  be possible to just roll this generation into the existing borrow checking by switching out the implementation of <code>each_borrow_involving_path</code> actually, that might be worth looking into</p>



<a name="126358325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126358325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126358325">(May 10 2018 at 10:13)</a>:</h4>
<p>I was expecting the changes to be more drastic but it appears that won't be the case</p>



<a name="126361234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126361234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126361234">(May 10 2018 at 11:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> cool, thanks. I told Niko that I wasn't finding time for this, I should be able today or tomorrow</p>



<a name="126361304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126361304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126361304">(May 10 2018 at 11:50)</a>:</h4>
<p>I haven't had a chance to check out <span class="user-mention" data-user-id="116106">@Reed Koser</span>'s branch yet</p>



<a name="126413633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413633">(May 11 2018 at 12:56)</a>:</h4>
<p>it seems like it'd be great to continue on this, <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, if you have time today—</p>



<a name="126413640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413640">(May 11 2018 at 12:57)</a>:</h4>
<p>specifically, I was thinking that it'd be really nice to get the <code>borrow-check</code> repo to the point where we can run it on actual files</p>



<a name="126413641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413641">(May 11 2018 at 12:57)</a>:</h4>
<p>and see the errors that result</p>



<a name="126413643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413643">(May 11 2018 at 12:57)</a>:</h4>
<p>i.e., in order to try out examples</p>



<a name="126413645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413645">(May 11 2018 at 12:57)</a>:</h4>
<p>(not to mention the optimization potential)</p>



<a name="126413648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413648">(May 11 2018 at 12:57)</a>:</h4>
<p>my vision was roughly that you give a <code>.rs</code> file</p>



<a name="126413650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413650">(May 11 2018 at 12:57)</a>:</h4>
<p>(deleted)</p>



<a name="126413652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413652">(May 11 2018 at 12:57)</a>:</h4>
<p>and we run <code>rustc -Znll-facts</code>, load the facts,</p>



<a name="126413654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413654">(May 11 2018 at 12:57)</a>:</h4>
<p>(deleted)</p>



<a name="126413657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413657">(May 11 2018 at 12:57)</a>:</h4>
<p>run our analysis and print errors</p>



<a name="126413659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413659">(May 11 2018 at 12:57)</a>:</h4>
<p>though you could integrate in different ways</p>



<a name="126413702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413702">(May 11 2018 at 12:58)</a>:</h4>
<p>(e.g., rustc could invoke us, instead, or we could be a custom driver)</p>



<a name="126413706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413706">(May 11 2018 at 12:58)</a>:</h4>
<p>sorry for those two yes, using with Zulip :P</p>



<a name="126413709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413709">(May 11 2018 at 12:58)</a>:</h4>
<blockquote>
<p>it seems like it'd be great to continue on this, <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, if you have time today—</p>
</blockquote>
<p>yes</p>



<a name="126413710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413710">(May 11 2018 at 12:58)</a>:</h4>
<p>but it seems like getting the info from #4 is the first step</p>



<a name="126413781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126413781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126413781">(May 11 2018 at 13:00)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126430444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126430444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126430444">(May 11 2018 at 19:43)</a>:</h4>
<p>I'll be around to chat, it's unlikely that I'll have a chance to write code until Monday or Tuesday at the earliest though. So don't worry about duplicate work for now =)</p>



<a name="126538758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126538758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126538758">(May 14 2018 at 13:56)</a>:</h4>
<p>I think neither <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> nor I had a chance to even look at the branch yet</p>



<a name="126538764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126538764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126538764">(May 14 2018 at 13:57)</a>:</h4>
<p>but I was hoping to look at it quickly now</p>



<a name="126538777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126538777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126538777">(May 14 2018 at 13:57)</a>:</h4>
<p>I guess <a href="https://github.com/bobtwinkles/rust/commit/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983" target="_blank" title="https://github.com/bobtwinkles/rust/commit/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983">this is the main commit</a></p>



<a name="126539022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539022">(May 14 2018 at 14:02)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126539037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539037">(May 14 2018 at 14:03)</a>:</h4>
<p>I'm doing all this right now :)</p>



<a name="126539471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539471">(May 14 2018 at 14:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> so I agree with <span class="user-mention" data-user-id="116106">@Reed Koser</span> that we ought to be able to refactor the borrow-check to share more core</p>



<a name="126539477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539477">(May 14 2018 at 14:13)</a>:</h4>
<p>I'm not sure how much to worry about that -- maybe worth landing something first? -- but ...</p>



<a name="126539532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539532">(May 14 2018 at 14:14)</a>:</h4>
<p>I guess the idea would be to have a function that , for a given <code>Location</code>, returns a list of invalidated loans (and why)</p>



<a name="126539539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539539">(May 14 2018 at 14:14)</a>:</h4>
<p>which the borrow checker could then call</p>



<a name="126539687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126539687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126539687">(May 14 2018 at 14:18)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126552973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126552973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126552973">(May 14 2018 at 19:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> so -- in terms of what code goes where —</p>



<a name="126552978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126552978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126552978">(May 14 2018 at 19:13)</a>:</h4>
<p>the first step is modifying <code>rustc</code> so that it generates the <code>Invalidates</code> tuples at the right locations</p>



<a name="126552984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126552984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126552984">(May 14 2018 at 19:13)</a>:</h4>
<p>it looks like <span class="user-mention" data-user-id="116106">@Reed Koser</span> got pretty far there, the main problem is that there is a lot of code duplication</p>



<a name="126553024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553024">(May 14 2018 at 19:14)</a>:</h4>
<p>I'm trying to take a shortcut :P</p>



<a name="126553025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553025">(May 14 2018 at 19:14)</a>:</h4>
<p>that is, the existing borrow check code in <code>librustc_mir</code> and this "fact dumper" kind of encode the same info</p>



<a name="126553029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553029">(May 14 2018 at 19:14)</a>:</h4>
<p>right now, the borrow checker works sort of like this:</p>



<a name="126553030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553030">(May 14 2018 at 19:14)</a>:</h4>
<p>it walks the MIR</p>



<a name="126553041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553041">(May 14 2018 at 19:15)</a>:</h4>
<p>and, for each statement, determines what loans it invalidates -- then it checks if those loans are "in scope" at that point -- if both are true it reports an error</p>



<a name="126553045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553045">(May 14 2018 at 19:15)</a>:</h4>
<p>but these concepts are not "explicitly materialized" as facts per se</p>



<a name="126553051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553051">(May 14 2018 at 19:15)</a>:</h4>
<p>more like, the borrow check invokes some helper fn whose name I forgot — <code>check_access_for_conflict</code>, I think? — for each of the loans that would be invalidated</p>



<a name="126553052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553052">(May 14 2018 at 19:15)</a>:</h4>
<p>or "borrows", as we call them there</p>



<a name="126553056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553056">(May 14 2018 at 19:16)</a>:</h4>
<blockquote>
<p>that is, the existing borrow check code in <code>librustc_mir</code> and this "fact dumper" kind of encode the same info</p>
</blockquote>
<p>when you say fact dumper, what are you referring to?</p>



<a name="126553126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553126">(May 14 2018 at 19:17)</a>:</h4>
<p>I'm referring to <span class="user-mention" data-user-id="116106">@Reed Koser</span>'s branch</p>



<a name="126553132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553132">(May 14 2018 at 19:17)</a>:</h4>
<p>but it builds on some code I landed in rustc a bit back</p>



<a name="126553146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553146">(May 14 2018 at 19:17)</a>:</h4>
<p>that lets you pass <code>-Znll-facts</code> to rustc</p>



<a name="126553149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553149">(May 14 2018 at 19:17)</a>:</h4>
<p>which causes it to dump facts into a subdirectory</p>



<a name="126553201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553201">(May 14 2018 at 19:18)</a>:</h4>
<p>got it</p>



<a name="126553216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553216">(May 14 2018 at 19:18)</a>:</h4>
<p>anyway I actually think the code duplication is ok for now</p>



<a name="126553221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553221">(May 14 2018 at 19:19)</a>:</h4>
<p>so we could land it as is — potentially — and then resolve that</p>



<a name="126553225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553225">(May 14 2018 at 19:19)</a>:</h4>
<p>but it <em>would</em> be nice if the borrow checker itself</p>



<a name="126553230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553230">(May 14 2018 at 19:19)</a>:</h4>
<p>ok</p>



<a name="126553231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553231">(May 14 2018 at 19:19)</a>:</h4>
<p>used these facts to drive itself</p>



<a name="126553237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553237">(May 14 2018 at 19:19)</a>:</h4>
<p>so that our tests would check that they are a complete set</p>



<a name="126553239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553239">(May 14 2018 at 19:19)</a>:</h4>
<p>(because, if they weren't, we'd be missing errors)</p>



<a name="126553246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553246">(May 14 2018 at 19:19)</a>:</h4>
<p>anyway, this is all just the 1st step — once we have the facts available, there is work to do on the <code>borrow-check</code> repository side</p>



<a name="126553309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553309">(May 14 2018 at 19:20)</a>:</h4>
<p>haven't checked <span class="user-mention" data-user-id="116106">@Reed Koser</span> code yet, but seems like we need to make that compile and work</p>



<a name="126553314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553314">(May 14 2018 at 19:20)</a>:</h4>
<p>I mean, it seems that it doesn't miss more stuff</p>



<a name="126553391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553391">(May 14 2018 at 19:22)</a>:</h4>
<p>yeah</p>



<a name="126553406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553406">(May 14 2018 at 19:23)</a>:</h4>
<p>the code is pretty straight forward (nice job <span class="user-mention" data-user-id="116106">@Reed Koser</span> =)</p>



<a name="126553407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553407">(May 14 2018 at 19:23)</a>:</h4>
<p>you can view it in <a href="https://github.com/bobtwinkles/rust/commit/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983" target="_blank" title="https://github.com/bobtwinkles/rust/commit/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983">this commit</a></p>



<a name="126553416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553416">(May 14 2018 at 19:23)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126553455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553455">(May 14 2018 at 19:24)</a>:</h4>
<p>in particular <a href="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs" target="_blank" title="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs">this file</a></p>



<a name="126553464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553464">(May 14 2018 at 19:24)</a>:</h4>
<p>it walks over the MIR and figures out which paths are manipulated and how</p>



<a name="126553466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553466">(May 14 2018 at 19:24)</a>:</h4>
<p>so e.g. an <a href="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs#L70-L83" target="_blank" title="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs#L70-L83">assign statement is here</a></p>



<a name="126553481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553481">(May 14 2018 at 19:25)</a>:</h4>
<p>these ultimately boil down to calls to <a href="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs#L475-L481" target="_blank" title="https://github.com/bobtwinkles/rust/blob/d0fb8a3b50d4c2e6c62eb034f6a5bf0d24427983/src/librustc_mir/borrow_check/nll/invalidation.rs#L475-L481">this function</a></p>



<a name="126553496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553496">(May 14 2018 at 19:25)</a>:</h4>
<p>I guess it doesn't build though</p>



<a name="126553499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553499">(May 14 2018 at 19:25)</a>:</h4>
<p>or at least I don't see impls of things like <code>report_conflicting_borrow</code></p>



<a name="126553539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553539">(May 14 2018 at 19:26)</a>:</h4>
<p>but I think the idea would be that you would add an <code>Invalidated</code> fact for each such call</p>



<a name="126553544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553544">(May 14 2018 at 19:26)</a>:</h4>
<p>(this code looks like it's kind of cut-and-paste out from the rest of the borrow checker, which makes total sense)</p>



<a name="126553847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553847">(May 14 2018 at 19:32)</a>:</h4>
<p>Your analysis there is correct, is mostly copy paste =P.<br>
The general strategy was to copy over most of the core, rip out the real error reporting, and replace it with fact generation</p>



<a name="126553870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553870">(May 14 2018 at 19:32)</a>:</h4>
<p>I got about halfway though ripping out the error reporting and didn't get to the last step there at all really</p>



<a name="126553956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553956">(May 14 2018 at 19:34)</a>:</h4>
<p>Though I think it should be reasonably trivial (just append to the fact list probably)</p>



<a name="126553991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126553991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126553991">(May 14 2018 at 19:35)</a>:</h4>
<p>I'll have some time to hack on something borrow-check related later today too, possibly the nicer front end if <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> is going to finish this up</p>



<a name="126554061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554061">(May 14 2018 at 19:36)</a>:</h4>
<p>I can also finish up this patch, I feel kinda bad about dropping the ball</p>



<a name="126554077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554077">(May 14 2018 at 19:36)</a>:</h4>
<p>I'm ok with taking it over and also ok with leaving it to you</p>



<a name="126554082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554082">(May 14 2018 at 19:36)</a>:</h4>
<p>can't promise that I will finish it all today</p>



<a name="126554100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554100">(May 14 2018 at 19:37)</a>:</h4>
<p>but I can promise to work on it a bit today and tomorrow and finish this ASAP</p>



<a name="126554108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554108">(May 14 2018 at 19:37)</a>:</h4>
<p>I'm trying to think: it seems like it woudl make the most sense for <span class="user-mention" data-user-id="116106">@Reed Koser</span> to finish what they started, but is there follow-up work we can productively do on the borrow-check side <em>now</em></p>



<a name="126554148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554148">(May 14 2018 at 19:38)</a>:</h4>
<p>I also opened up this <a href="https://github.com/rust-lang-nursery/borrow-check/issues/26" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/26">https://github.com/rust-lang-nursery/borrow-check/issues/26</a> which seems like it might interest you <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> , as an aside</p>



<a name="126554155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554155">(May 14 2018 at 19:38)</a>:</h4>
<p>(we could flesh it out and make it more concrete)</p>



<a name="126554163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554163">(May 14 2018 at 19:38)</a>:</h4>
<p>(basically I'd like some other way to use <code>borrow-check</code> that lets us test and develop examples without having to run rustc)</p>



<a name="126554183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554183">(May 14 2018 at 19:39)</a>:</h4>
<blockquote>
<p>I'm trying to think: it seems like it woudl make the most sense for <span class="user-mention" data-user-id="116106">@Reed Koser</span> to finish what they started, but is there follow-up work we can productively do on the borrow-check side <em>now</em></p>
</blockquote>
<p>well</p>



<a name="126554186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554186">(May 14 2018 at 19:39)</a>:</h4>
<p>one thing we could obviously do</p>



<a name="126554189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554189">(May 14 2018 at 19:39)</a>:</h4>
<p>we could add a kind of filter on the differential-dataflow rules</p>



<a name="126554231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554231">(May 14 2018 at 19:40)</a>:</h4>
<p>That works for me. I can finish this up then if that's alright <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>. I know you claimed it earlier and I kinda stole it</p>



<a name="126554235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554235">(May 14 2018 at 19:40)</a>:</h4>
<p>that cause it to ignore loans that arent' relevant <em>anywhere</em></p>



<a name="126554244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554244">(May 14 2018 at 19:40)</a>:</h4>
<p>not that interesting but maybe relevant</p>



<a name="126554248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554248">(May 14 2018 at 19:40)</a>:</h4>
<p>anyway it'd be mostly an exercise in learning how stuff work</p>



<a name="126554250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554250">(May 14 2018 at 19:40)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I culd write-up some instructions on that if you have time now</p>



<a name="126554251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554251">(May 14 2018 at 19:40)</a>:</h4>
<p>well let me try to add a few notes into #4 anyway</p>



<a name="126554319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554319">(May 14 2018 at 19:42)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> go ahead :)</p>



<a name="126554322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554322">(May 14 2018 at 19:42)</a>:</h4>
<p>all yours</p>



<a name="126554395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554395">(May 14 2018 at 19:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yep, let me know what to do :)</p>



<a name="126554406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554406">(May 14 2018 at 19:44)</a>:</h4>
<p>Sounds good, thanks</p>



<a name="126554450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554450">(May 14 2018 at 19:45)</a>:</h4>
<p>I have time to do some rustc stuff again since today, besides from going to the doctor with the baby :)</p>



<a name="126554629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554629">(May 14 2018 at 19:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> I wrote up <a href="https://github.com/rust-lang-nursery/borrow-check/issues/4#issuecomment-388940330" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/4#issuecomment-388940330">this</a></p>



<a name="126554679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554679">(May 14 2018 at 19:50)</a>:</h4>
<p>very simple first step, but I imagine it'll take a bit to get acquainted with <code>borrow-check</code> codebase anyhow</p>



<a name="126554686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554686">(May 14 2018 at 19:50)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126554705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554705">(May 14 2018 at 19:51)</a>:</h4>
<p>so it's two things? <a href="https://github.com/rust-lang-nursery/borrow-check/issues/26" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/26">https://github.com/rust-lang-nursery/borrow-check/issues/26</a> and <a href="https://github.com/rust-lang-nursery/borrow-check/issues/4#issuecomment-388940330" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/issues/4#issuecomment-388940330">https://github.com/rust-lang-nursery/borrow-check/issues/4#issuecomment-388940330</a> ?</p>



<a name="126554783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554783">(May 14 2018 at 19:53)</a>:</h4>
<p>those are distinct things</p>



<a name="126554784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554784">(May 14 2018 at 19:53)</a>:</h4>
<p>either one seems fine</p>



<a name="126554787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554787">(May 14 2018 at 19:54)</a>:</h4>
<p>but the latter is <em>much</em> more concrete</p>



<a name="126554826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554826">(May 14 2018 at 19:54)</a>:</h4>
<p>the former is kind of a big task</p>



<a name="126554855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554855">(May 14 2018 at 19:55)</a>:</h4>
<p>I think my branch includes step 1 there</p>



<a name="126554859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554859">(May 14 2018 at 19:55)</a>:</h4>
<p>ok</p>



<a name="126554864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554864">(May 14 2018 at 19:55)</a>:</h4>
<p>gonna try to help with the latter thing</p>



<a name="126554901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554901">(May 14 2018 at 19:56)</a>:</h4>
<p>Oh wait that's in borrow-check nvm</p>



<a name="126554909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554909">(May 14 2018 at 19:56)</a>:</h4>
<p>I added that to all facts in rustc</p>



<a name="126554910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126554910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126554910">(May 14 2018 at 19:56)</a>:</h4>
<p>right, those are separate</p>



<a name="126556214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126556214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126556214">(May 14 2018 at 20:21)</a>:</h4>
<p>wrt a friendlier frontend, maybe the one at nll-soufflé could be reused <span class="user-mention" data-user-id="116009">@nikomatsakis</span> ?</p>



<a name="126558310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558310">(May 14 2018 at 21:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm going to the doctor now with the little baby :), but was reading what you wrote</p>



<a name="126558319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558319">(May 14 2018 at 21:07)</a>:</h4>
<p>in particular <code>then we would need to make that compile loading facts from invalidated.facts.</code></p>



<a name="126558323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558323">(May 14 2018 at 21:07)</a>:</h4>
<p>what does it means to compile loading a file?</p>



<a name="126558329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558329">(May 14 2018 at 21:07)</a>:</h4>
<p>you mean that you want the thing to run with invalidated.facts?</p>



<a name="126558384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558384">(May 14 2018 at 21:08)</a>:</h4>
<p>and also</p>



<a name="126558386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558386">(May 14 2018 at 21:08)</a>:</h4>
<p>where is invalidated.facts?</p>



<a name="126558402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558402">(May 14 2018 at 21:09)</a>:</h4>
<p>it's not under inputs dir</p>



<a name="126558407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558407">(May 14 2018 at 21:09)</a>:</h4>
<p>should I generate that somehow?</p>



<a name="126558414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558414">(May 14 2018 at 21:09)</a>:</h4>
<p>sorry, I'm very late to the party, I guess you explained all this several times</p>



<a name="126558470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126558470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126558470">(May 14 2018 at 21:10)</a>:</h4>
<p>I will do this when I'm back</p>



<a name="126560371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126560371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126560371">(May 14 2018 at 21:55)</a>:</h4>
<blockquote>
<p>should I generate that somehow?</p>
</blockquote>
<p>sorry, should have been clearer: yes, I figured you'd just make an empty file to start</p>



<a name="126560373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126560373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126560373">(May 14 2018 at 21:55)</a>:</h4>
<p>since we are not actually using this data for anything yet</p>



<a name="126562734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126562734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126562734">(May 14 2018 at 22:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm back and this thing is done</p>



<a name="126562739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126562739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126562739">(May 14 2018 at 22:51)</a>:</h4>
<p>the part 1</p>



<a name="126562741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126562741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126562741">(May 14 2018 at 22:51)</a>:</h4>
<p>Nice</p>



<a name="126562788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126562788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126562788">(May 14 2018 at 22:52)</a>:</h4>
<p>hehe, I had to do nothing</p>



<a name="126562791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126562791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126562791">(May 14 2018 at 22:52)</a>:</h4>
<p>we need to talk about part 2</p>



<a name="126563050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563050">(May 14 2018 at 22:55)</a>:</h4>
<p>ok so</p>



<a name="126563057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563057">(May 14 2018 at 22:55)</a>:</h4>
<p>I was thinking about this on the bike ride home just now</p>



<a name="126563064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563064">(May 14 2018 at 22:55)</a>:</h4>
<p>I've only got a few minutes but maybe I can sketch something on the issue</p>



<a name="126563107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563107">(May 14 2018 at 22:56)</a>:</h4>
<p>ok</p>



<a name="126563108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563108">(May 14 2018 at 22:56)</a>:</h4>
<p>yes</p>



<a name="126563113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563113">(May 14 2018 at 22:56)</a>:</h4>
<p>I'm around with some time to code, so <span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126563116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563116">(May 14 2018 at 22:56)</a>:</h4>
<p>meanwhile I'm going to read borrow-check code</p>



<a name="126563489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563489">(May 14 2018 at 23:04)</a>:</h4>
<p>ok so I left some notes, but they're probably too vague to be of much use</p>



<a name="126563491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563491">(May 14 2018 at 23:04)</a>:</h4>
<p>gotta run now in any case</p>



<a name="126563516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126563516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126563516">(May 14 2018 at 23:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> can you open a PR ?</p>



<a name="126564145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126564145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126564145">(May 14 2018 at 23:16)</a>:</h4>
<p>yes</p>



<a name="126564148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126564148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126564148">(May 14 2018 at 23:17)</a>:</h4>
<p>it's a shame the PR</p>



<a name="126564151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126564151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126564151">(May 14 2018 at 23:17)</a>:</h4>
<p>but yes</p>



<a name="126564259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126564259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126564259">(May 14 2018 at 23:18)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/borrow-check/pull/28" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/pull/28">https://github.com/rust-lang-nursery/borrow-check/pull/28</a></p>



<a name="126566557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126566557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126566557">(May 15 2018 at 00:26)</a>:</h4>
<p>heh; I think there's a few more things that could be added.</p>



<a name="126566559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126566559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126566559">(May 15 2018 at 00:26)</a>:</h4>
<p>I'll leave comments :)</p>



<a name="126591410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591410">(May 15 2018 at 13:27)</a>:</h4>
<p>unsure what happened yesterday with this</p>



<a name="126591415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591415">(May 15 2018 at 13:27)</a>:</h4>
<p>nothing yet :)</p>



<a name="126591417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591417">(May 15 2018 at 13:27)</a>:</h4>
<p>hehe committed two lines of codes and one was missing</p>



<a name="126591479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591479">(May 15 2018 at 13:28)</a>:</h4>
<blockquote>
<p>nothing yet :)</p>
</blockquote>
<p>well, talking about the last part I had assigned</p>



<a name="126591499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591499">(May 15 2018 at 13:29)</a>:</h4>
<p>need to tackle step 2</p>



<a name="126591520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591520">(May 15 2018 at 13:29)</a>:</h4>
<p>right so I also broke out a new issue that described my thoughts there in a bit more detail</p>



<a name="126591566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591566">(May 15 2018 at 13:30)</a>:</h4>
<p>but this intersects what <span class="user-mention" data-user-id="116083">@pnkfelix</span> and I are talking about <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> so maybe jump in there :)</p>



<a name="126591772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591772">(May 15 2018 at 13:35)</a>:</h4>
<p>in #making-plans?</p>



<a name="126591923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591923">(May 15 2018 at 13:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> yeah, particularly towards the end -- e.g. <a href="#narrow/stream/122657-wg-nll/subject/making-plans/near/126591635" title="#narrow/stream/122657-wg-nll/subject/making-plans/near/126591635">in this comment</a> I sketched out what I see as the major pieces atm</p>



<a name="126591976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591976">(May 15 2018 at 13:40)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span>, I'm reading :)</p>



<a name="126591980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126591980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126591980">(May 15 2018 at 13:40)</a>:</h4>
<p>70 messages left :P</p>



<a name="126592131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126592131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126592131">(May 15 2018 at 13:44)</a>:</h4>
<p>Sorry I meant to write up my progress on this but ran out of time last night. I cleaned up the work I did Thursday and then stopped because I 1) ran in to a doozy of a borrowck error and 2) had to get some sleep. Hopefully I'll have enough time to actually finish this up tonight, but it turns out moving across the country results in some time-consuming tasks =)</p>



<a name="126592467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126592467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126592467">(May 15 2018 at 13:52)</a>:</h4>
<p>So reading through other threads, seems like this is blocking a lot of other work. I won't have time to poke at this until 12+ hours from now, so if someone else has spare cycles between now and then (<span class="user-mention" data-user-id="116083">@pnkfelix</span>?) feel free to pick this up</p>



<a name="126592480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126592480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126592480">(May 15 2018 at 13:52)</a>:</h4>
<p>my evenings are often filled with child care stuff</p>



<a name="126592505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126592505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126592505">(May 15 2018 at 13:53)</a>:</h4>
<p>so don't be too confident that I'll be poking at too many new things in the next 12+ hours</p>



<a name="126592535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126592535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126592535">(May 15 2018 at 13:53)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span> No worries. Your children are probably more important than working on this stuff <span class="emoji emoji-1f604" title="smile">:smile:</span></p>



<a name="126646740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646740">(May 16 2018 at 14:09)</a>:</h4>
<p>Just a heads up, I pushed <a href="https://github.com/rust-lang/rust/pull/50798" target="_blank" title="https://github.com/rust-lang/rust/pull/50798">https://github.com/rust-lang/rust/pull/50798</a><br>
There's some more cleanup I think I should do but it's ready for review.</p>



<a name="126646759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646759">(May 16 2018 at 14:10)</a>:</h4>
<p>nice</p>



<a name="126646800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646800">(May 16 2018 at 14:10)</a>:</h4>
<p>I /think/ I picked up all the important cases for invalidations but it's definitely possible I missed something =)</p>



<a name="126646807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646807">(May 16 2018 at 14:10)</a>:</h4>
<p>cool</p>



<a name="126646809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646809">(May 16 2018 at 14:10)</a>:</h4>
<p>I'll check :)</p>



<a name="126646821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126646821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126646821">(May 16 2018 at 14:11)</a>:</h4>
<p>sounds good, thanks</p>



<a name="126651593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126651593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126651593">(May 16 2018 at 15:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> I left a review fyi</p>



<a name="126651602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126651602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126651602">(May 16 2018 at 15:55)</a>:</h4>
<p>in particular, I answered some of your FIXME questions</p>



<a name="126651644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126651644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126651644">(May 16 2018 at 15:56)</a>:</h4>
<p>but it basically looked right to me, though I could easily be missing something too :)</p>



<a name="126652299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126652299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126652299">(May 16 2018 at 16:12)</a>:</h4>
<p>Cool, I'll take a look after work</p>



<a name="126652302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126652302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126652302">(May 16 2018 at 16:12)</a>:</h4>
<p>Probably like 7:30 PST</p>



<a name="126685829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126685829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126685829">(May 17 2018 at 07:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  <a href="https://github.com/rust-lang/rust/pull/50798" target="_blank" title="https://github.com/rust-lang/rust/pull/50798">https://github.com/rust-lang/rust/pull/50798</a> is back in your wheelhouse</p>



<a name="126703817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703817">(May 17 2018 at 15:44)</a>:</h4>
<p>ok, I r+'d it</p>



<a name="126703861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703861">(May 17 2018 at 15:44)</a>:</h4>
<p>I was chatting a bit with <span class="user-mention" data-user-id="116107">@David Wood</span> about the next steps <a href="#narrow/stream/122657-wg-nll/subject/making-plans/near/126703539" title="#narrow/stream/122657-wg-nll/subject/making-plans/near/126703539">here</a></p>



<a name="126703882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703882">(May 17 2018 at 15:44)</a>:</h4>
<p>basically we don't have to wait for the PR to land to start trying it out</p>



<a name="126703916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703916">(May 17 2018 at 15:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116107">@David Wood</span> probably step 1 is to get a build going of rust-lang/rust#50798</p>



<a name="126703959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703959">(May 17 2018 at 15:46)</a>:</h4>
<p>Alright, I'll get that kicked off.</p>



<a name="126703962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703962">(May 17 2018 at 15:46)</a>:</h4>
<p>the blog post actually spelled out the datalog rules we're going to need already</p>



<a name="126703969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703969">(May 17 2018 at 15:46)</a>:</h4>
<p><span class="emoji emoji-1f980" title="crab">:crab:</span></p>



<a name="126703973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703973">(May 17 2018 at 15:46)</a>:</h4>
<p>Good luck and God speed</p>



<a name="126703977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703977">(May 17 2018 at 15:46)</a>:</h4>
<p>not sure what's the best way to "come up to speed"</p>



<a name="126703995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126703995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126703995">(May 17 2018 at 15:47)</a>:</h4>
<p>What was the video you mentioned?</p>



<a name="126704003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> csmoe <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704003">(May 17 2018 at 15:47)</a>:</h4>
<p><a href="https://www.youtube.com/watch?v=oTnbtGuSpWQ&amp;feature=youtu.be" target="_blank" title="https://www.youtube.com/watch?v=oTnbtGuSpWQ&amp;feature=youtu.be">https://www.youtube.com/watch?v=oTnbtGuSpWQ&amp;feature=youtu.be</a></p>
<div class="youtube-video message_inline_image"><a data-id="oTnbtGuSpWQ" href="https://www.youtube.com/watch?v=oTnbtGuSpWQ&amp;feature=youtu.be" target="_blank" title="https://www.youtube.com/watch?v=oTnbtGuSpWQ&amp;feature=youtu.be"><img src="https://i.ytimg.com/vi/oTnbtGuSpWQ/default.jpg"></a></div>



<a name="126704011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> csmoe <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704011">(May 17 2018 at 15:47)</a>:</h4>
<p>this one?</p>



<a name="126704066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> csmoe <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704066">(May 17 2018 at 15:48)</a>:</h4>
<p>I finished it just now.</p>



<a name="126704067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704067">(May 17 2018 at 15:48)</a>:</h4>
<p>that looks like it</p>



<a name="126704184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704184">(May 17 2018 at 15:50)</a>:</h4>
<p>Alright, I'll give that a watch, read the blog post and get that PR built.</p>



<a name="126704226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704226">(May 17 2018 at 15:51)</a>:</h4>
<p><span class="user-mention" data-user-id="116107">@David Wood</span> feel free to ping me with any questions of course</p>



<a name="126704230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126704230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126704230">(May 17 2018 at 15:51)</a>:</h4>
<p>Will do!</p>



<a name="126716806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716806">(May 17 2018 at 20:26)</a>:</h4>
<p>so ... how can I generate input data from <span class="user-mention" data-user-id="116106">@Reed Koser</span> PR?</p>



<a name="126716817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716817">(May 17 2018 at 20:26)</a>:</h4>
<p>taking a look but any pointer is appreciated</p>



<a name="126716825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716825">(May 17 2018 at 20:26)</a>:</h4>
<p>well, you have to build it first</p>



<a name="126716836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716836">(May 17 2018 at 20:27)</a>:</h4>
<p>then you have to run <code>-Znll-facts</code> on some input</p>



<a name="126716845"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716845" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716845">(May 17 2018 at 20:27)</a>:</h4>
<p>so we should pick some inputs that have errors :)</p>



<a name="126716849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716849">(May 17 2018 at 20:27)</a>:</h4>
<p>yeah saw about <code>-Znll-facts</code></p>



<a name="126716888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716888">(May 17 2018 at 20:28)</a>:</h4>
<p>but what were you using on polonius repo?</p>



<a name="126716903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716903">(May 17 2018 at 20:28)</a>:</h4>
<p>are there some inputs you were already using?</p>



<a name="126716906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716906">(May 17 2018 at 20:28)</a>:</h4>
<p>do I need to build some example?</p>



<a name="126716934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126716934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126716934">(May 17 2018 at 20:30)</a>:</h4>
<p>hmm in the video there's an example if I'm not wrong</p>



<a name="126717008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717008">(May 17 2018 at 20:31)</a>:</h4>
<p>there are some inputs I used on the repo, however,</p>



<a name="126717014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717014">(May 17 2018 at 20:31)</a>:</h4>
<p>none of those examples actually are expected to give an error</p>



<a name="126717015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717015">(May 17 2018 at 20:31)</a>:</h4>
<p>doesn't mean we can't try them, actually :)</p>



<a name="126717075"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717075" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717075">(May 17 2018 at 20:33)</a>:</h4>
<p>so basically you would do <code>rustc -Znll-facts foo.rs</code></p>



<a name="126717077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717077">(May 17 2018 at 20:33)</a>:</h4>
<p>I think the README.md maybe talks about that?</p>



<a name="126717079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717079">(May 17 2018 at 20:33)</a>:</h4>
<p><a href="https://github.com/rust-lang-nursery/polonius/#how-to-generate-your-own-inputs" target="_blank" title="https://github.com/rust-lang-nursery/polonius/#how-to-generate-your-own-inputs">yes, there is a section here</a></p>



<a name="126717754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717754">(May 17 2018 at 20:48)</a>:</h4>
<p><span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="126717757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717757">(May 17 2018 at 20:48)</a>:</h4>
<p>maybe some example like ...</p>



<a name="126717761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717761">(May 17 2018 at 20:48)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">fn</span> <span class="nf">location_sensitive</span><span class="p">(</span><span class="n">vec</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="kt">u32</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="kt">u32</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">vec</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span><span class="w"></span>

<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="o">*</span><span class="n">p</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="k">return</span><span class="w"> </span><span class="n">p</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>

<span class="w">    </span><span class="n">vec</span><span class="p">.</span><span class="n">push</span><span class="p">(</span><span class="mi">5</span><span class="p">);</span><span class="w"></span>

<span class="w">    </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">vec</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="126717779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717779">(May 17 2018 at 20:49)</a>:</h4>
<p>it's the idea you mentioned on the video</p>



<a name="126717883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717883">(May 17 2018 at 20:51)</a>:</h4>
<p>I see. Yes, that's good.</p>



<a name="126717889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126717889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126717889">(May 17 2018 at 20:51)</a>:</h4>
<p>there is an example in the repo you could use</p>



<a name="126718033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718033">(May 17 2018 at 20:54)</a>:</h4>
<p><a href="http://issue-47680.rs" target="_blank" title="http://issue-47680.rs">issue-47680.rs</a> ?</p>



<a name="126718076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718076">(May 17 2018 at 20:55)</a>:</h4>
<p>but does this fail in the insensitive analysis?</p>



<a name="126718121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718121">(May 17 2018 at 20:56)</a>:</h4>
<p>it depends on what we try to do, just dumping invalidates would be good to test this out</p>



<a name="126718129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718129">(May 17 2018 at 20:56)</a>:</h4>
<p>but at the same time we would need one that fails</p>



<a name="126718132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718132">(May 17 2018 at 20:56)</a>:</h4>
<p>no, not that one</p>



<a name="126718136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718136">(May 17 2018 at 20:56)</a>:</h4>
<p>it will however definitely fail in the insensitive analysis</p>



<a name="126718137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718137">(May 17 2018 at 20:56)</a>:</h4>
<p>it's not the one I meant tho</p>



<a name="126718138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718138">(May 17 2018 at 20:56)</a>:</h4>
<p>one sec</p>



<a name="126718142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718142">(May 17 2018 at 20:56)</a>:</h4>
<p>well probably the one that fails would be more useful when I do the second part which is tying timely_opt with insensitive stuff</p>



<a name="126718150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718150">(May 17 2018 at 20:57)</a>:</h4>
<p>yeah for the first part I think anything is good</p>



<a name="126718212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718212">(May 17 2018 at 20:58)</a>:</h4>
<p>I meant <code>src/test/ui/nll/get_default.rs</code></p>



<a name="126718216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126718216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126718216">(May 17 2018 at 20:58)</a>:</h4>
<p>it's basically the same test as the one from our discussion tho</p>



<a name="126719738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126719738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126719738">(May 17 2018 at 21:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> were you able to run anything?</p>



<a name="126719906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126719906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126719906">(May 17 2018 at 21:40)</a>:</h4>
<p>hey, I'm back</p>



<a name="126719913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126719913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126719913">(May 17 2018 at 21:41)</a>:</h4>
<p>not yet, wasn't with the computer</p>



<a name="126719914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126719914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126719914">(May 17 2018 at 21:41)</a>:</h4>
<p>let me try</p>



<a name="126737404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126737404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126737404">(May 18 2018 at 07:48)</a>:</h4>
<p>I created <a href="https://github.com/rust-lang-nursery/polonius/pull/35" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/35">https://github.com/rust-lang-nursery/polonius/pull/35</a> to "properly" close out #4. It just adds some example facts to the repo so people don't necessarily have to build their own <code>rustc</code> to play with <code>invalidates</code>. CC <span class="user-mention" data-user-id="116009">@nikomatsakis</span>  <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>  and <span class="user-mention" data-user-id="116113">@lqd</span></p>



<a name="126740857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126740857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126740857">(May 18 2018 at 09:34)</a>:</h4>
<p>I guess that closes out #4; should probably open another issue to change the official output from the <code>borrow_live_at</code> results to <em>just</em> the points where errors occur</p>



<a name="126743702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126743702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126743702">(May 18 2018 at 11:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116106">@Reed Koser</span> cool, I had done the same in another PR will check with <span class="user-mention" data-user-id="116009">@nikomatsakis</span> how to finish my stuff</p>



<a name="126746831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126746831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126746831">(May 18 2018 at 12:36)</a>:</h4>
<p>hey <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span>, I'm around now</p>



<a name="126753328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753328">(May 18 2018 at 14:47)</a>:</h4>
<p>Don't we want both? The invalidates facts for input and errors as output validation</p>



<a name="126753343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753343">(May 18 2018 at 14:47)</a>:</h4>
<p>Oh you mean in the prototype</p>



<a name="126753385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Reed Koser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753385">(May 18 2018 at 14:48)</a>:</h4>
<p>Brain isn't working at full speed quite yet</p>



<a name="126753812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753812">(May 18 2018 at 14:59)</a>:</h4>
<blockquote>
<p>Don't we want both? The invalidates facts for input and errors as output validation</p>
</blockquote>
<p>not sure I understood you here :)</p>



<a name="126753877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753877">(May 18 2018 at 15:00)</a>:</h4>
<p>but I think the next logical step after adding <code>invalidates</code> relation is rejiggering the analyses to output <em>errors</em> instead of the raw <code>borrow_live_at</code> (though this impacts also the integration that <span class="user-mention" data-user-id="116083">@pnkfelix</span> was proposing, but we can tweak this — e.g., have an option to emit <code>borrow_live_at</code> too)</p>



<a name="126753900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/borrow-check%20issue%20%234/near/126753900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/borrow-check.20issue.20.234.html#126753900">(May 18 2018 at 15:01)</a>:</h4>
<p>I'm not sure just how far <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> got on this but in <a href="https://github.com/rust-lang-nursery/polonius/pull/34" target="_blank" title="https://github.com/rust-lang-nursery/polonius/pull/34">their PR</a> they have the basic setup for the location insensitive case, anyway</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>